#!/bin/bash

# JDK 和 JMeter 的下载链接和安装路径
jdk_url="http://10.75.2.14:8089//group1/default/20230513/15/48/2/jdk-19_linux-x64_bin.tar.gz"
jmeter_url="http://10.75.2.14:8089//group1/default/20230513/15/48/2/apache-jmeter-5.5.tgz"
java_home="/usr/local/java/jdk-19.0.2"
jmeter_home="/usr/local/jmeter"

# 安装 Java
if type java >/dev/null 2>&1; then
    echo "Java 已安装"
else
    echo "正在下载 JDK 安装包..."
    wget -q "$jdk_url" || { echo "下载 JDK 安装包失败"; exit 1; }
    echo "JDK 安装包下载完成"

    echo "正在创建 Java 目录..."
    sudo mkdir -p /usr/local/java/ || { echo "创建 Java 目录失败"; exit 1; }
    echo "Java 目录创建完成"

    echo "正在解压 JDK 安装包..."
    sudo tar -zxf jdk-19_linux-x64_bin.tar.gz -C /usr/local/java/ || { echo "解压 JDK 安装包失败"; exit 1; }
    echo "JDK 安装包解压完成"

    echo "正在设置环境变量..."
    sudo tee -a /etc/profile << EOF
export JAVA_HOME=$java_home
export JRE_HOME=\$JAVA_HOME/jre
export CLASSPATH=.:\$JAVA_HOME/lib:\$JRE_HOME/lib
export PATH=\$JAVA_HOME/bin:\$PATH
EOF
    echo "环境变量设置完成"

    echo "正在重新加载环境变量..."
    source /etc/profile || { echo "重新加载环境变量失败"; exit 1; }
    echo "环境变量重新加载完成"

    echo "正在创建软链接..."
    sudo ln -s "$java_home"/bin/java /usr/bin/java || { echo "创建软链接失败"; exit 1; }
    echo "软链接创建完成"

    echo "正在验证 JDK 是否安装成功..."
    java -version || { echo "JDK 安装失败"; exit 1; }
    echo "JDK 安装成功"
fi

# 安装 JMeter
if type jmeter >/dev/null 2>&1; then
    echo "JMeter 已安装"
else
    echo "正在下载 JMeter 安装包..."
    wget -q "$jmeter_url" || { echo "下载 JMeter 安装包失败"; exit 1; }
    echo "JMeter 安装包下载完成"

    echo "正在解压 JMeter 安装包..."
    sudo tar -zxf apache-jmeter-5.5.tgz -C /usr/local/ || { echo "解压 JMeter 安装包失败"; exit 1; }
    sudo mv /usr/local/apache-jmeter-5.5 /usr/local/jmeter || { echo "移动 JMeter 目录失败"; exit 1; }
    echo "JMeter 安装包解压完成"

    echo "正在设置 JMeter 环境变量..."
    sudo tee -a /etc/profile << EOF
export JMETER_HOME=$jmeter_home
export PATH=\$JMETER_HOME/bin:\$PATH
EOF
    echo "JMeter 环境变量设置完成"

    echo "正在重新加载环境变量..."
    source /etc/profile || { echo "重新加载环境变量失败"; exit 1; }
    echo "环境变量重新加载完成"

    echo "正在验证 JMeter 是否安装成功..."
    jmeter -v || { echo "JMeter 安装失败"; exit 1; }
    echo "JMeter 安装成功"
fi

echo "安装完成"